package com.tyk.bookstore.back.logistics.service;


import com.tyk.bookstore.back.common.core.model.type.BinVo;
import com.tyk.bookstore.back.common.core.model.type.SuggestionQuery;
import com.tyk.bookstore.back.logistics.manager.excel.model.ExpressCompanyExcelVo;
import com.tyk.bookstore.back.logistics.model.query.ExpressCompanyAddQuery;
import com.tyk.bookstore.back.logistics.model.query.ExpressCompanyPageQuery;
import com.tyk.bookstore.back.logistics.model.query.ExpressCompanyUpdateQuery;
import com.tyk.bookstore.back.logistics.model.vo.ExpressCompanyPageVo;
import com.tyk.bookstore.back.logistics.model.vo.ExpressCompanyVo;

import java.util.List;
import java.util.Set;

/**
 * @author tyk
 * @description 快递公司管理
 */
public interface ExpressCompanyService {

    /**
     * 获取快递公司详情
     */
    ExpressCompanyVo getById(Long id);

    /**
     * 分页查询快递公司
     */
    ExpressCompanyPageVo getPage(ExpressCompanyPageQuery query);

    /**
     * 添加快递公司
     */
    void add(ExpressCompanyAddQuery query);

    /**
     * 更新快递公司
     */
    void updateById(ExpressCompanyUpdateQuery query);

    /**
     * 删除快递公司
     */
    void deleteById(Long id);

    /**
     * 批量删除快递公司
     */
    void deleteBatchByIdSet(Set<Long> ids);

    /**
     * 快递公司搜索建议列表
     */
    List<BinVo> getSuggestionList(SuggestionQuery query);

    /**
     * 获取Excel导出数据
     *
     * @param query 同分页查询参数
     * @return Excel导出数据
     */
    List<ExpressCompanyExcelVo> getExpressCompanyExcelVoList(ExpressCompanyPageQuery query);

    /**
     * 保存物流公司Excel
     *
     * @param expressCompanyList 物流公司
     */
    void saveExpressCompanyExcelVoList(List<ExpressCompanyExcelVo> expressCompanyList);
}
